1. Field of the Invention
This invention relates to digital data communication circuits, and more particularly to the operational verification of serial data communication circuits.
2. Description of the Relevant Art
Electronic devices typically communicate via electrical signals (e.g., voltage and/or current) driven upon electrical conductors (e.g., metal wires). Simultaneous transmission of multiple signals is accommodated by several wires routed in parallel (i.e., buses). Most computer systems have a modular architecture centered around a bus which serves as a shared communication link between system components. The two major advantages of shared buses over direct communication links between system components are versatility and low cost. By defining a standard interconnection scheme for a given bus, new devices may be easily connected to the bus. The cost of the bus is low because it is shared among the number of components connected to the bus.
Due to technological advances, the signal processing capabilities of more modern electronic devices (e.g., microprocessors) are outstripping the signal transfer capabilities of conventional parallel buses. To their detriment, parallel buses have physical limitations which place an upper limit on the rate at which information can be transferred over the bus. For example, the electrical characteristics and loading of each wire of a bus may vary, causing signals transmitted simultaneously upon the bus to be received at different times. Bus timing must take into consideration worst case delays, resulting in reduced data transfer rates of systems employing parallel buses.
A serial data path, on the other hand, is a direct communication link between a single transmitter and a single receiver. Such a serial data path typically includes a dedicated transmission medium connected between the transmitter and receiver. The transmission medium may be, for example, a differentially-driven pair of wires or a fiber-optic cable. In cases where the transmission medium is a pair of wires, the communication link (i.e., channel) has a defined electrical loading and is typically optimized for minimum signal delay. As a result, the rate at which electrical signals can be transferred over such a serial data path exceeds the data transfer rate of a common shared parallel bus.
Serial data transmitter/receiver devices (i.e., transceivers) offering digital signal transmission rates exceeding 1 gigabit per second are now commercially available. The testing of such transceivers at their normal operating speeds, however, presents many technical challenges. Consider a serial data transceiver including a transmitter and a receiver. The transmitter receives parallel data at an input port, converts the parallel data to a serial data stream, and provides the serial data stream at an output port. The receiver receives a serial data stream at an input port, converts the serial data stream to parallel data, and provides the parallel data at an output port. A conventional method of operationally testing such a transceiver is to connect the transmitter output port to the receiver input port in a xe2x80x9cloopbackxe2x80x9d fashion, provide parallel input test data to the transmitter input port, receive parallel output test data from the output port of the receiver, and compare the parallel output test data to the parallel input test data. A match between the parallel output test data and the parallel input test data verifies proper operation of the transceiver.
When the transceiver is installed within, for example, a computer system, access to the parallel data transfer terminals (i.e., the transmitter input port and the receiver output port) is typically limited to other computer system components coupled to the transceiver data transfer terminals. In order to gain access to the parallel data transfer terminals for testing, it may be necessary to disassemble the system to access the transceiver, to remove the transceiver from the system, and to mount the transceiver within a special test fixture which connects the transmitter output port to the receiver input port. Following testing, the transceiver must be reinstalled within the system and the system reassembled.
In contrast, the serial data transfer terminals of the transceiver (i.e., the receiver input port and the transmitter output port) are by design easily accessible and available for testing without system disassembly. In addition, serial data testing requires fewer wires and physical connections than parallel data testing. Testing problems are often the result of faulty wires and physical connections.
It would be beneficial to have a serial data transceiver which includes elements which facilitate functional testing requiring access to only the serial data transfer terminals of the transceiver (i.e., only the receiver input port and the transmitter output port). Such a serial data transceiver and accompanying test method would eliminate the need to disassemble a computer system including the transceiver in order to test the transceiver. In addition, the fewer wires and physical connections involved in serial testing of the transceiver would reduce problems associated with faulty wires and physical connections. In addition to transceiver testing and characterization, such testing capability is also beneficial for system debugging. For example, assume several computers are connected to a shared communication medium forming a computer network having a loop topology. Each transceiver operating in xe2x80x9cloopbackxe2x80x9d mode immediately retransmits incoming serial data, behaving like a wire. Such action allows testing of the network independent of the transceivers.
A serial data transceiver is presented having elements which facilitate functional testing using only the serial data transfer terminals of the transceiver. An associated test apparatus and method employs these elements. The present transceiver architecture solves a test access problem. Testing of the serial data transceiver mounted within a computer system does not require disassembly of the computer system and removal of the transceiver from the system. The serial data transfer terminals are typically easily accessible and available for testing. In addition, fewer wires and physical connections are required for serial data testing than for parallel data testing. The use of fewer wires and physical connections reduces problems associated with faulty wires and physical connections.
The serial data transceiver includes a transmitter and a receiver formed upon a monolithic semiconductor substrate. The transmitter receives parallel data, converts the parallel data to a serial data stream, and transmits the serial data stream. The receiver receives a serial data stream, converts the serial data stream to parallel data, and provides the parallel data. The transmitter and receiver are also coupled to receive a test signal. When the test signal is asserted, parallel data is routed from the output of the receiver to the input of the transmitter. Functional testing of the serial data transceiver may thus be accomplished with access to only the serial data ports of the transceiver.
In order to facilitate the routing the output of the receiver to the input of the transmitter, one embodiment of the serial data transceiver includes two routers. A first router within the transmitter routes parallel input data to the transmitter. A second router within the receiver routes parallel output data and the recovered clock signal produced by the receiver. The first router is coupled to the second router, and both routers are configured to receive a xe2x80x98testxe2x80x99 signal. When the test signal is asserted, the second router routes the parallel output data produced by the receiver to the first router, and the first router routes the parallel output data produced by the receiver to the transmitter. As a result, the received serial data is retransmitted by the transceiver during testing.
In one embodiment, the transceiver includes a xe2x80x98transmit dataxe2x80x99 input port for receiving parallel input data to be transmitted, a serial data output port, a serial data input port, a xe2x80x98receive dataxe2x80x99 output port for providing parallel output data produced by the receiver, and a recovered clock terminal. The transmitter is coupled between the transmit data input port and the serial data output port. The transmitter receives the parallel input data, converts the parallel input data to a serial data stream, and transmits the serial data stream at the serial data output port. The transmitter includes a serializer for converting the parallel input data to the serial data stream. The first router is coupled between the transmit data input port and the serializer, and routes parallel input data and a recovered clock signal to the serializer dependent upon the test signal. The receiver is coupled between the serial data input port and the receive data output port. The receiver receives a serial data stream from the serial data input port, converts the serial data stream to parallel output data, and provides the parallel output data.
The receiver includes a deserializer for converting the serial data stream into the parallel output data. The deserializer also recovers a clock signal (i.e., the recovered clock signal) from the serial data stream. The second router is coupled between the deserializer and the receive data output port. The second router provides the recovered clock signal to the recovered clock terminal. The second router also routes the parallel output data produced by the deserializer dependent upon the test signal. When the test signal is deasserted: (i) the first router routes parallel input data from the transmit data input port to the serializer, and (ii) the second router routes parallel output data from the deserializer to the receive data output port. The serializer uses the reference clock signal to serialize the parallel input data. When the test signal is asserted: (i) the second router routes parallel output data and the recovered clock signal produced by the deserializer to the first router, and (ii) the first router routes the parallel output data and the recovered clock signal received from the second router to the serializer. The serializer uses the recovered clock signal to serialize the parallel output data produced by the deserializer.
The present method for testing the serial data transceiver described above includes asserting the test signal, providing serial input test data to the serial data input port, receiving serial output test data from the serial data output port, and comparing the serial output test data to the serial input test data. A test unit including a serial test generator and a serial data comparator may be coupled to the transceiver during testing and used to generate the serial input test data and to perform the comparison operation. A match between the serial output test data and the serial input test data (i.e., a one-to-one correspondence between the logic values of the corresponding bit positions of the serial output test data and the serial input test data) verifies proper operation of the serial data transceiver.